package com.wondersgroup.fjzlpt.yyzyzx.service.impl.yyzygl.jcgzgl;

import java.util.Map;
import java.util.UUID;

import com.wondersgroup.fjzlpt.yyzyzx.service.inter.yyzygl.jcgzgl.FhgzszService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject;
import com.wondersgroup.fjzlpt.yyzyzx.dao.inter.yyzygl.yysz.FhgzDao;

/**
 * 放号规则设置service
 * @author gzb   
 * 2017年8月8日
 */
@Service
@SuppressWarnings({"rawtypes","unchecked"})
public class FhgzszServiceImpl implements FhgzszService {

	@Autowired
	private FhgzDao fhgzDao;
	
	/**
	 * 保存/修改 放号规则设置
	 * @param map
	 * @return
	 */
	@Override
	public JSONObject save(Map map) {
		JSONObject result = new JSONObject();
		String type = map.get("type").toString();
		if("add".equals(type)){
			insert(map, result);
		}else{
			update(map, result);
		}
		return result;
	}
	
	/**
	 * 添加放号规则设置
	 * @param map
	 * @param result
	 */
	private void insert(Map map, JSONObject result){
		try {
			map.put("GZBH", UUID.randomUUID().toString());
			fhgzDao.insert(map);
			result.put("state", "1");
			result.put("info", "放号规则设置信息保存成功！");
		} catch (Exception e) {
			result.put("info", "放号规则设置信息保存失败！");
			throw new RuntimeException("放号规则设置信息保存失败！");
		}
	}
	
	/**
	 * 修改放号规则设置
	 * @param map
	 * @param result
	 */
	private void update(Map map, JSONObject result){
		try {
			fhgzDao.updateForPrimaryKey(map);
			result.put("state", "1");
			result.put("info", "放号规则设置信息修改成功！");
		} catch (Exception e) {
			result.put("info", "放号规则设置信息修改失败！");
			throw new RuntimeException("放号规则设置信息修改失败！");
		}
	}

	/**
	 * 分页查询放号规则设置
	 * @param map
	 * @return
	 */
	@Override
	public JSONObject queryPage(Map map) {
		return fhgzDao.queryPage(map);
	}

	/**
	 * 删除 放号规则设置
	 * @param map
	 * @return
	 */
	@Override
	public JSONObject delete(Map map) {
		JSONObject result = new JSONObject();
		try {
			fhgzDao.deleteForPrimaryKey(map);
			result.put("state", "1");
			result.put("info", "删除成功！");
		} catch (Exception e) {
			result.put("info", "删除放号规则设置失败！");
			throw new RuntimeException("删除放号规则设置失败！");
		}
		return result;
	}

	/**
	 * 判断机构是否已经存在放号规则
	 * @param map
	 * @return
	 */
	public JSONObject isExit(Map map){
		JSONObject result = new JSONObject();
		try {
			boolean flag = fhgzDao.isExistByPtjgid(map);
			result.put("state", "1");
			if(flag){
				result.put("info", "您选择的机构已经存在放号规则！");
			}
		} catch (Exception e) {
			result.put("info", "判断是否可新增规则失败！");
			throw new RuntimeException("判断是否可新增规则失败！");
		}
		return result;
	}

}
